package com.danbay.cloud.lock.device.entity;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.danbay.cloud.base.constants.Const;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author yangyanchen on 2017/12/18
 *         Copyright © 2016 －2017 旦倍科技
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("device_info")
public class DeviceInfo {

    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 门锁的内开时间
     */
    private Date user_inneropentime;

    /**
     * 门锁的产品型号和版本号；
     */
    private String lock_info="";

    private Date user_lastopenlocktime;

    private Long centerControl;

    /**
     * 房间id
     */
    private String houseId;

    private String isAssociated;

    private String name;

    private String deviceModel;

    /**
     * 设备id
     */
    private String deviceId;

    /**
     * 设备版本
     */
    private String deviceVersion;

    private String deviceElectricity;

    private java.util.Date deviceTime;

    private String deviceType;

    /**
     * 对应房间号
     */
    private String roomNum;

    private String status;

    private java.util.Date addTime;

    private String macAddress;

    private String addStatus;

    private Integer adminCount;

    private Integer userCount;

    private Integer tempCount;

    private Integer totalCount;

    /**
     * 管家密码
     */
    private String mPwdStatus;
    /**
     * 用户密码
     */
    private String uPwdStatus;

    /**
     * 是否已同步
     */
    private String hasSync;

    /**
     * 用来做显示的字段
     * 电量状态
     */
    private String powerStatus;

    /**
     * 密码容量
     */
    private Integer pwdCount;

    /**
     * 新增自定义备注字段
     */
    private String remarks;

    /**
     * 是否已删除
     */
    private String hasDelete;

    /**
     * 设备所在的网络IP地址,每次登录的时候会重新回去该字段
     */
    private String remoteAddr;

    /**
     * 门琐型号和版本
     */
    private String deviceModelVer;

    /**
     * 设备上传的值
     */
    private Integer upValue;
    /**
     * 设备上传的时间
     */
    private java.util.Date upTime;

    private Long houseInfoId;

    private Long roomId;

    /**
     * 用户
     */
    private Long user;
    /**
     * 用户名
     */
    private String userName;

    private Long contractInfo;
    /**
     * 合同编号
     */
    private String contractNum;

    /**
     *  表示电压，单位100mV   一般小于0x21，例：0x21表示3.3v
     */
    private Integer voltValue;
    /**
     *  表示温度，单位℃/100  一般小于0x1400，例：0x0DDF表示温度为35.51℃
     */
    private Integer tempValue;
    /**
     *  表示湿度，单位0.01%       一般小于0x2700，例：0x14E6表示湿度为53.5%
     */
    private Integer humValue;

    private String provider;

    /**
     *  0水表 ，1电表 ewmType
     */
    private String ewmType;
    /**
     * 电表类型、0:费控型 1:普通型,水表类型、0冷水电表，1热水表
     */
    private String coldHot;

    /**0:关，1：开*/
    private String navigation;

    /**0:低，1：高*/
    private String volume;

    /**0:英文，1：中文*/
    private String language;

    private String xs_state;

    private String fs_state;

    private String mc_state;

    private String ck_state;


    private String lock_state;

    private Date mc_updatetime;

    private Integer lock_timeoutlength;

    /**
     * 是否在线
     * @return boolean
     */
    public boolean isOnline(){
        return Const.BOOL_STRING_FALSE.equals(getStatus());
    }
}
